A standard mechanism in Internet Protocol (IP) networks for dealing with congestion is Random Early Discard (RED), sometimes also known as Random Early Detection. When a router sees an impending problem condition, it starts randomly throwing away packets. A Transmission Control Protocol (TCP) protocol client, which would be aware of any packet loss, concludes from observed loss that it is sending packets too quickly, and throttles back its sending rate to thereby alleviate congestion.
In general, the actual packet loss observed by a TCP client is a result of packets being dropped at a receiving device, namely a router in the above example. According to a simple discard mechanism, when the depth of packets in a traffic queue at the receiving device exceeds a discard threshold, packets arriving at that queue are dropped ‘off the tail’ of the queue until the queue depth recedes below the discard threshold. One problem with this procedure, in the case of TCP connections, is that packets can tend to be dropped from a single TCP connection, resulting in an unfair service impact between customers.
RED can address this problem for TCP connections by using queue depth to determine whether to keep or discard each packet as it arrives at a queue. A packet discard probability, which is dependent on the average depth of the queue over some time period, is compared to a random number. The packet is discarded if its discard probability exceeds the random number. Discard probabilities may be determined using a discard probability function, which might remain at zero until a minimum threshold is reached, increase linearly until a maximum threshold is reached, and remain at 100% for average queue depths greater than the maximum threshold.
In so-called weighted RED, there are multiple discard probability functions, each of which results in a different discard probability for the same average queue depth. The particular discard probability function that is used for a packet depends on the drop precedence of the packet, which is determined by examining the DiffServ Code Point (DSCP) field in the IP header of the packet. Packets that exceed agreements on their connections have their drop precedence and thus their discard probability function changed by an IP policing procedure. As with RED, the determination to keep or discard a packet is made by comparing the discard probability of the packet to a random number. A variation of this procedure uses different probability curves in accordance with a class of service (CoS) of a packet. The CoS of a packet is also determined by examining the DSCP field in the IP header.
One of the limitations of standard or weighted RED is that these techniques are used only on TCP flows. As non-TCP applications such as streaming video, VoIP, and IP video-telephony increase in popularity, the effectiveness of RED decreases because it operates only on the TCP portion of traffic.
This also creates issues with respect to ensuring fairness between users. In a mixed traffic scenario, RED may either discard all packet types, which means that it is degrading the quality of non-TCP traffic types to no useful effect, or it can discard only TCP traffic. In the latter case, it effectively treats all User Datagram Protocol (UDP) and other protocols that do not verify successful delivery as high priority and all TCP applications as low priority. This might not reflect the priorities that a service provider would prefer, since in this case radio-over-the-Internet streaming audio might have a higher priority than business-critical client server applications, for instance.
Intelligent Deep Packet Inspection (DPI) engines are being developed which are capable of looking inside a stream of traffic (beyond the header of each packet) to detect what kind of traffic is flowing in a network. These engines can distinguish between web browsing, email, VoIP, gaming, peer-to-peer, and other application types, for example. However, DPI is not currently used for dealing with traffic congestion.
There remains a need for improved communication traffic congestion management techniques.